package xml;

import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import java.io.File;
import java.io.IOException;

/**
 * @author 孙许
 * @date 2018-04-18
 * @description DOM解析器会完整地读入XML文档，然后将其转换成一个树形的数据结构。但是，如果文档很大，并且处理
 * 算法又非常简单，可以在运行时解析节点，而不必看到完整的树形结构，那么DOM可能就会显得效率低下了。
 * 在这种情况下，我们应该使用流机制解析器
 */
public class SAXDemo {

    public void parse(File file) throws ParserConfigurationException, SAXException, IOException {
        SAXParserFactory factory = SAXParserFactory.newInstance();
        SAXParser parser = factory.newSAXParser();

        parser.parse(file, new DefaultHandler() {
            @Override
            public void endElement(String uri, String localName, String qName) {
                System.out.println(qName);
            }
        });

    }
}
